/*
 * cookie 是否应该加密？
 */
const cookie = {
  /*
   *@method 写入cookie
   *@param  String name 保存本地的key
   *@param  mix    value 混合类型
   *@param  mix    时间戳为js格式精确到微秒, 多久后过期
   *@return
   */
  set(name, value, expire) {
    let days = 30;
    expire = expire > 0 ? expire : days * 24 * 60 * 60 * 1000;
    let exp = new Date();
    exp.setTime(exp.getTime() + expire);
    document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
  },
  /*
   *@method 获取本地存储
   *@param  String name 保存本地的key
   *@return
   */
  get(name) {
    let arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    if (arr == document.cookie.match(reg))
      return unescape(arr[2]);
    else
      return null;
  },
  /*
   *@method 移除全部本地存储
   *@param  String name 保存本地的key
   *@return
   */
  remove(name) {
    let exp = new Date();
    exp.setTime(exp.getTime() - 1000);
    let value = this.get(name);
    if (value != null) {
      document.cookie = name + '=' + value + ';path=/;expires=' + exp.toGMTString()
    }
  },
  /*
   *@method 移除当前玉域名下的cookie，不知道是否有更好的方案
   *@param  无
   *@return
   */
  clear() {
    let exp = new Date();
    exp.setTime(exp.getTime() - 1000);
    //keys为所要删除cookie的名字
    var keys = document.cookie.match(/[^ =;]+(?==)/g);
    //删除所有cookie
    if (keys) {
      for (var i = keys.length; i--;) {
        let value = this.get(keys[i]);
        if (value != null) {
          document.cookie = keys[i] + '=' + value + ';path=/;expires=' + exp.toGMTString()
        }
      }
    }
  }
}
export default cookie
